package br.com.senac.pi5.servlet;

import br.com.senac.pi5.bean.Passageiro;
import br.com.senac.pi5.dao.PassageiroDao;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/CadastroPassageiroServlet"})
public class CadastroPassageiroServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        // pegando os parâmetros do request
        String nome = request.getParameter("nome");
        String sobrenome = request.getParameter("sobrenome");
        String sexo = request.getParameter("sexo");
        String rg = request.getParameter("rg");
        String cpf = request.getParameter("cpf");
        String endereco = request.getParameter("endereco");
        String bairro = request.getParameter("bairro");
        String dataEmTexto = request.getParameter("dt_nasc");
        String cidade = request.getParameter("cidade");
        String estado = request.getParameter("estado");
        String cep = request.getParameter("cep");
        String tel = request.getParameter("tel");
        String email = request.getParameter("email");
        String senha = request.getParameter("senha");

        // monta um objeto passageiro
        Passageiro passageiro = new Passageiro();
        passageiro.setNome(nome);
        passageiro.setSobrenome(sobrenome);
        passageiro.setSexo(sexo);
        passageiro.setRg(rg);
        passageiro.setCpf(cpf);
        passageiro.setEndereco(endereco);
        passageiro.setBairro(bairro);
        passageiro.setDt_nasc(dataEmTexto);
        passageiro.setCidade(cidade);
        passageiro.setEstado(estado);
        passageiro.setCep(cep);
        passageiro.setTel(tel);
        passageiro.setEmail(email);
        passageiro.setSenha(senha);

        // salva o passageiro
        try {
            PassageiroDao dao = new PassageiroDao();

            boolean cpfExiste = dao.validaCpfExistente(passageiro.getCpf());
            boolean emailExiste = dao.validaEmailExistente(passageiro.getEmail());

            if (cpfExiste || emailExiste) {
                String msg;
                if (cpfExiste && emailExiste) {
                    msg = "E-mail e CPF já estão cadastrados!";
                } else {
                    if (cpfExiste) {
                        msg = "CPF já está cadastrado!";
                    } else {
                        msg = "E-mail já está cadastrado!";
                    }
                }
                request.getSession().setAttribute("msg", msg);
                RequestDispatcher rd = request.getRequestDispatcher("/passageiroExistente.jsp");
                rd.forward(request, response);

            } else {
                dao.adiciona(passageiro);
                Passageiro passageiroCadastrado = dao.autentica(passageiro.getEmail(), passageiro.getSenha());

                request.getSession().setAttribute("Passageiro", passageiroCadastrado);
                RequestDispatcher rd = request.getRequestDispatcher("/passageiroCadastradoComSucesso.jsp");
                rd.forward(request, response);
            }

        } catch (SQLException ex) {
            Logger.getLogger(CadastroPassageiroServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
